// JavaScript Document
// Deve fazer ao inserir uma nota para aluno, se adicionou aluno depois q a nota ja foi lançada ao inserir o nome da nota, ele deve
// inserir esse campo somente para o aluno que foi inserido depois, mas o nome tem que ser igual.

function verificaLogadoAjax(conteudo){
	if(conteudo.indexOf("<!--loginadmin-->") > -1){
		location.href = "/boletim/administrador";
	}
}
$(document).ready(function(e) {
	/** Criar nova Nota **/
	$("#meio").on("click", "#lancarNotasAlunos", function(e){
		var listaAluno = new Array();
		var faltas = new Array();
		var idMateria = $("#listaMaterias option:selected").val();
		$(".loadingProfessor").show();
		var error = false;
		$("input[name=inputNota]").each(function(){
			if($(this).val() !== undefined && $(this).val() != ""){
				var idAluno = parseInt($(this).attr("id-aluno"));
				var idNota = parseInt($(this).attr("id-nota"));
				var tipoNota = $(this).attr("nome");
				var ordemNota = parseInt($(this).attr("intNota"));
				var bimestre = parseInt($(this).attr("bimestre"));
				var nota = parseFloat($(this).val());
				var aluno = {
					idAluno : idAluno,
					intBimestre : bimestre,
					intOrdem : ordemNota,
					nota: nota,
					tipoNota : tipoNota,
					idNota : idNota
				};
				listaAluno.push(aluno);
			} else {
				error = true;
				$(this).css({
					"border" : "1px solid red"
				});
			}			
		});
		$("input[name=faltas]").each(function(){
			if($(this).val() != ""){
				var falta = {
					idAluno : parseInt($(this).attr("id-aluno")),
					qtd : parseInt($(this).val()),
					bimestre : parseInt($(this).attr("bimestre")),
					idFalta : parseInt($(this).attr("id-falta"))
					
				};
				faltas.push(falta);
			}
		});
		if(error){
			$(".loadingProfessor").hide();
			alert("Preencha todos os campos de nota que você criou, caso não tenha nota, coloque 0, para editar depois");
		} else {
			$.ajax({
				url : "/boletim/professor/lancarNota",
				type : "POST",
				dataType : "json",
				data : {
					listaAluno : listaAluno,
					idMateria : idMateria,
					faltas : faltas
				},
				success : function(data){
					var erro = parseInt(data.error);
					if(erro == 0){
						getAlunosNota();
					} else {
						alert(data.msg);
					}
					$(".loadingProfessor").hide();
				},
				error : function(data){
					alert("Erro desconhecido");
					$(".loadingProfessor").hide();
					console.log(data.responseText);
				}
			});
		}
		
	});
	$("#meio").on("change", "#listaTurmaProfessor", function(e){
		/*var idTurma = $(this).val();
		var idMateria = $("#listaMaterias option:selected").val();
		$.ajax({
			url : "/boletim/Aluno/getAlunosNotaByTurma",
			type: "POST",
			dataType:"html",
			data: {
				idMateria : idMateria,
				idTurma : idTurma
			},
			success: function(data){
				$(".lancamento").empty().html(data);
			},
			error: function(data){
				alert("Erro desconhecido");
				console.log(data.responseText);
			}
		});*/
		getAlunosNota($(this).val());
//		alert(idMateria);
	});
	$("#meio").on("change", "#listaMaterias", function(e){
		var idMateria = $(this).val();
		if(idMateria != "n/a"){
			$(".loadingProfessor").show();
			$.ajax({
				url : "/boletim/turma/getTurmasByMateria/" + idMateria,
				dataType : "json",
				success : function(data){
					var erro = parseInt(data.error);
					if(erro == 0){
						var listaTurmas = data.listaTurmas;
						var option = "";
						$("#listaTurmaProfessor").empty();
						option = "<option value=\"n/a\">Selecione uma Turma</option>";
						$("#listaTurmaProfessor").append(option);
						for(var i = 0; i < listaTurmas.length; i++){
							var option = "<option value=\""+listaTurmas[i].id+"\">"+listaTurmas[i].nome+" | Série : " + listaTurmas[i].serie + "</option>";
							$("#listaTurmaProfessor").append(option);
						}
					} 
					else if(erro == 1){
						//Sem turmas
						var option = "";
						$("#listaTurmaProfessor").empty();
						option = "<option value=\"n/a\">Sem Turmas</option>";
						$("#listaTurmaProfessor").append(option);
					} else {
						alert(data.msg);
					}
					$(".loadingProfessor").hide();
				},
				error : function(data){
					alert("Erro desconhecido");
					console.log(data.responseText);
					$(".loadingProfessor").hide();
				}
			});
		}
	});
	$("#meio").on("keyup", ".strNomeNota", function(e){
		var tecla = e.keyCode || e.which;
		if(tecla == 13){
			$(this).closest("div").find(".inserirNovoCampoNota").trigger("click");
			return;
		}
	});
    $("#meio").on("click", ".lancamento .add", function(e){
		if($(this).parent().find("input").size() == 0){
			var bim = $(this).attr("bi");
			var criar = "<div style=\"width: 100%; float: left; display: none;\"><input type=\"text\" bi=\"" + bim + "\" maxlength=\"3\" value=\"\" style=\"width: 20px;\" class=\"strNomeNota\"><input type=\"button\" value=\"Ok\"  style=\"margin-left: 10px;\" class=\"inserirNovoCampoNota\"></div>";
			$(this).after(criar);
			$(this).parent().find("div").slideDown("fast");
		} else {
			if($(this).parent().find("input").parent().is(":visible")){
				$(this).parent().find("input").parent().slideUp("fast");
			} else {
				$(this).parent().find("input").parent().slideDown("fast");
			}
		}
	});
	$("#meio").on("click", ".inserirNovoCampoNota", function(e){
		var nome = $(this).prev().val();
		var bi = $(this).prev().attr("bi");
		var este = $(this);
		if(nome === undefined || nome == ""){
			alert("Insira um nome para a nota");
		} else {
			if(bi !== undefined && bi != ""){
				try{
					bi = parseInt(bi);
					var qtd = $(".bim" + bi +":first").find("input").size();
					var flag = false;
					var qtdLoop = 10;
					$(".bim" + bi).find(".faltas").each(function(){
						var este = $(this);
						flag = false;
						for(var i = 0; i < qtdLoop; i++){
							var este = este.prev();
							if(este.text() == nome){
								flag = true;
								break;								
							}
						}
						if(!flag){
							var idAluno = $(this).closest("tr").attr("id-aluno");
							var criar = "<div class=\"inserirValor\"><span class=\"tb\">"+nome+"</span></br><span><input type=\"text\" id-nota=\"0\" nome=\""+nome+"\" bimestre=\""+bi+"\" intNota=\""+qtd+"\" id-aluno=\""+idAluno+"\" name=\"inputNota\" required value=\"\"></span></div>";
							$(this).before(criar);
							$(this).prev().find("input").digitosDouble({ separador : ".", digitos : 4 });
						}
					});

					//$("input[name=inputNota]").digitosDouble({ separador : ".", digitos : 4 });
					este.closest("div").slideUp("slow", function(){
						$(this).remove();
					});
				} catch(a){
					alert("Bimestre inválido");
				}
			}
		}
	});
	/** Criar nova Nota **/
	
	/** Editar professor **/
	$(".editarProfessor").fancybox({
		type : "ajax",
		beforeShow: function(){
			verificaLogadoAjax(this.content);
		},
		helpers : {
			overlay : {
				closeClick : false
			}
		}
	});
	/** Editar professor **/
});

function getAlunosNota(idTurma){
	if(idTurma == null || idTurma === undefined || idTurma == ""){	
		var idTurma = $("#listaTurmaProfessor option:selected").val();
	}
	var idMateria = $("#listaMaterias option:selected").val();
	$(".loadingProfessor").show();
	$.ajax({
		url : "/boletim/aluno/getAlunosNotaByTurma",
		type: "POST",
		dataType:"html",
		data: {
			idMateria : idMateria,
			idTurma : idTurma
		},
		success: function(data){
			$(".lancamento").empty().html(data);
			$(".loadingProfessor").hide();
			$("input[name=inputNota]").digitosDouble({ separador : ".", digitos : 4 });
		},
		error: function(data){
			alert("Erro desconhecido");
			console.log(data.responseText);
			$(".loadingProfessor").hide();
		}
	});
}

function validarCadastroProfessor(form){
	var idProfessor = form.idProfessor.value;
	var nome = form.strNome.value;
	var login = form.strLogin.value;
	var senha = form.strSenha.value;
	var email = form.strEmail.value;
	var formulario = form;
	$(".ligthBoxLoad").show();
	if(idProfessor == 0 && senha == ""){
		alert("Para novo cadastro, senha é obrigatório");
	} 
	else if (nome == "" || login == ""){
		alert("Nome e login são obrigatórios");		
	}
	else {
		$.ajax({
			url : "/boletim/professor/inserirEditarProfessorProfessor",
			type: "POST",
			dataType:"json",
			data: {
				nome : nome,
				login: login,
				senha: senha,
				email: email
			},
			success: function(data){
				var erro = parseInt(data.error);
				if(erro == 0 || erro == -2){
					//alert(data.msg);
					$(".ligthBoxLoad").hide();
					$.fancybox.close();
					//mudarPagina("professor");
					location.href = "/boletim/professor";
				}
				else if(erro > 0){
					//alert(data.msg);
					/*$(".respostaAjax").empty().text(data.msg).show();
					$(".ligthBoxLoad").hide();
					formulario.strNome.value = "";
					formulario.strLogin.value = "";
					formulario.strSenha.value = "";
					formulario.strEmail.value = "";
					mudarPagina("professor");
					formulario.strNome.focus();
					setTimeout(function(){
						$(".respostaAjax").hide();
					}, 3000);*/
					console.log(1);
				} 

				else {
					alert(data.msg);
					$(".ligthBoxLoad").hide();
				}
			},
			error : function(data){
				alert("Erro desconhecido");
				console.log(data.responseText);
				$(".ligthBoxLoad").hide();
			}
		});
	}
	return false;	
}